#include <stdio.h>
#include <avr/io.h>

#define USART_BAUDRATE 4800   // Nastaveni baud rate na 4800Bd
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)  // Vypocet nastaveni reg

// Inicializace UARTu - nastaveni prijmu a vysilani,
// 8 bitu a 1 stop bit
// nastaveni internich hodin
void initUART()
{
	UCSRB |= (1 << RXEN) | (1 << TXEN);   // Zapnuti prijmu a vysilani
	UCSRC |= (1 << URSEL) | (1 << UCSZ0) | (1 << UCSZ1); // 8 bitu, 1 stop bit

	UBRRL = BAUD_PRESCALE; 
	UBRRH = (BAUD_PRESCALE >> 8); 
}

// Zapis dat na UART
void uartPut(unsigned char data )  
{
   while ( !( UCSRA & (1<<UDRE)) ) 		// Cekani na prijeti celeho znaku

   ;
   UDR = data;
}

// Cteri z UARTu
char uartRead()			
{
	while(!(UCSRA & (1<<RXC)))		// Cekani do prijeti celeho znaku
	;
	return UDR;
}

int main(void)
{
	char c;
	
	DDRB = (1<<PB0)|(1<<PB1);		// PB0 a PB1 nastaveny jako vystupni
	PORTB=(1<<PB1)|(1<<PB0);		// Vysokz vystup (pull up) 
	initUART();
	while(1) 
	{
			c=uartRead();
			if(c==0x24){
				PORTB = (0<<PB0);
			}
			uartPut(c);
			//PORTB = (1<<PB0);

	}
}
